package com.cheetah.start.module.system.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cheetah.start.common.query.PageQuery;
import com.cheetah.start.module.system.domain.ScheduleJob;


/**
 * Describe: 定时任务服务接口
 * Author: 就免仪式
 * CreateTime: 2019/10/23
 */
public interface IScheduleJobService extends IService<ScheduleJob> {

    /**
     * Describe: 新增定时任务
     * Param: ScheduleJob
     * Return: Boolean 执行结果
     *
     * @return
     */
    boolean saveJob(ScheduleJob scheduleJob);

    /**
     * Describe: 修改定时任务
     * Param: ScheduleJob
     * Return: Boolean 执行结果
     */
    Boolean update(ScheduleJob scheduleJob);

    /**
     * Describe: 停止定时任务
     * Param: JobId
     * Return: Boolean 执行结果
     */
    Boolean pause(String jobId);

    /**
     * Describe: 恢复定时任务
     * Param: JobId
     * Return: Boolean 执行结果
     */
    Boolean resume(String jobId);

    /**
     * Describe: 运行一次定时任务
     * Param: JobId
     * Return: 无返回值
     */
    void run(String jobId);

    /**
     * Describe: 删除定时任务
     * Param: JobId
     * Return: Boolean 执行结果
     */
    Boolean delete(String jobId);


    /**
     * Describe: 定时任务列表 分页
     * Param: ScheduleJob PageDomain
     * Return: pageInfo
     */
    Page<ScheduleJob> pageList(ScheduleJob param, PageQuery pageDomain);

}
